/*
 * @Author: wangming
 * @Date: 2020-09-04 09:05:11
 * @LastEditors: wangming
 * @LastEditTime: 2022-08-03 11:25:27
 * @Description: formData  表单组件
 */
/**
 * 高级设置
 */
const __highSetUp = {
    formChecked: false, //表单校验
    events: [],//事件组
    DisplayConditions: [],//显隐条件  [{label:'',rules:[{ modelName: "", value: "", checked: false }]}]
    RuleConditions: [],//可视化显示规则
};
/**
 * 基本设置通用属性
 */
const __defaultConfig = {
    type: 'formItem',
    aliasName: '',//别名
    width: 100, // 组件宽度
    label: '', // 标签名称
    labelWidth: 120, // 标签宽度
    required: false, //状态设置 required必填 disabled 只读 hide 隐藏
    isNullable: false, //表示这个数据表里字段是必填 不可以操作
    disabled: false,//只读
    hide: false,
    noItem: false, // 隐藏标题
    viewInfo: false,// 查看
    codeType: '',//绑定字段的数据类型
    showExplain: false,// 隐藏说明
    explainValue: "",//说明内容
    i18n: {}//翻译相关信息
};
/**
 * 表单结构
 */
const formModel = {
    hlInput: {
        // 单行文本
        name: '单行文本',
        icon: 'iconicon_danhangwenben_moren',
        tagName: 'hlInput', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        defaultValue: '',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            maxlength: 50, // 最大字符长度
            placeholder: '请输入', // 提示文字
            regexps: [],//正则表达式
            inputmax: '', //控件输入长度
            autofocus: false,//自动获取焦点
        }
    },
    hlPassword: {
        name: '密码',
        icon: 'iconmima',
        tagName: 'hlPassword', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        defaultValue: '',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            maxlength: 50, // 最大字符长度
            placeholder: '请输入', // 提示文字
            regexps: [],//正则表达式
            inputmax: '', //控件输入长度
            autofocus: false,//自动获取焦点
            ismd5: false,
        }
    },
    hlTextarea: {
        // 多行文本
        name: '多行文本',
        icon: 'iconicon_duohangwenben_moren',
        tagName: 'hlTextarea', // 标签名称
        modelName: '', // 字段名称
        trigger: 'blur',
        version: '0.0.1',
        defaultValue: '',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            rows: 4, // 显示行数
            maxlength: 200, // 最大字符长度
            placeholder: '请输入', // 提示文字
            inputmax: '', //控件输入长度
        },
    },
    hlLink: {
        // 链接
        name: '链接',
        icon: 'iconweibiaoti--',
        tagName: 'hlLink', // 标签名称
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            content: '这是一个超链接', // 链接内容
            href: '', //链接地址
            target: '_blank', //_blank  _self
            type: "primary",
            underline: false,
            disabled: false,
        },
    },
    hlTag: {
        name: '标签',
        icon: 'el-icon-price-tag',
        tagName: 'hlTag', // 标签名称
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            content: '标签', // 链接内容
            type: "primary",
        },
    },
    hlExplain: {
        // 说明
        name: '文本',
        icon: 'iconwenben',
        tagName: 'hlExplain', // 标签名称
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            content: '', // 说明文字
            contentColor: '#666',
            contentBold: false,
        },
    },
    hlInputNumber: {
        // 数字
        name: '数值',
        icon: 'iconicon_shuzi_moren',
        tagName: 'hlInputNumber', // 标签名称
        modelName: '', // 字段名称
        defaultValue: null, // 默认值
        trigger: 'blur',
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            limitNumber: 2, //精度
            max: 999999999999, // 最大值
            min: 0, // 最小值
            minType: 'fix', // 固定值
            maxType: 'fix',
            minRelation: '',// 关联组件
            maxRelation: '',
            unit: '', //单位
            placeholder: '请输入', // 提示文字
            modelType: ''//字段类型
        },
    },
    hlMoneyInput: {
        // 金额
        name: '金额',
        icon: 'iconicon_jine_moren',
        tagName: 'hlMoneyInput', // 标签名称
        modelName: '', // 字段名称
        defaultValue: null, // 默认值
        trigger: 'blur',
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            limitNumber: 2,
            max: 999999999999, // 最大值
            min: 0, // 最小值
            minType: 'fix', // 固定值
            maxType: 'fix',
            minRelation: '',// 关联组件
            maxRelation: '',
            showSeparator: false, // 显示千位分隔符
            placeholder: '请输入', // 提示文字
            currency: '',
            otherUnit: "",
        },
    },
    hlCalculation: {
        // 计算公式
        name: '计算公式',
        icon: 'iconicon_jisuangongshi_moren',
        tagName: 'hlCalculation', // 标签名称
        modelName: '', // 字段名称
        __highSetUp,
        version: '0.0.1',
        __config: {
            limitNumber: 2,
            formula: [], //计算公式
            currency: '', //单位
            originModelNameList: ['hlInputNumber', 'hlMoneyInput'],
            ...__defaultConfig,
            span: 24, // 栅格
            showSeparator: false, // 显示千位分隔符
            formulaText: '' // 计算公式文本展示
        },
    },
    hlUppercase: {
        // 大写转换
        name: '大写转换',
        icon: 'iconicon_daxiezhuanhuan_moren',
        tagName: 'hlUppercase', // 标签名称
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            originModelName: '', //关联控件
            originModelNameList: ['hlInputNumber', 'hlMoneyInput', 'hlCalculation'],
        },
    },
    hlModelSelect: {
        name: '字段选择',
        icon: 'el-icon-eleme',
        tagName: 'hlModelSelect', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            modelCode: '', //业务模型code
        },
    },
    hlSelect: {
        // 下拉选择
        name: '下拉选择',
        icon: 'iconicon_xialaxuanze_moren',
        tagName: 'hlSelect', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: '',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            multiple: false, //可否多选
            modelKey: '', // 表单业务模型id
            relationType: '', //数据源类型字典或者业务
            valueTeam: '', //自数据
            modelCode: '', //子业务模型code
            parseDataJsx: '',//数据过滤脚本
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
            cancelLoad: false,
        },
    },
    hlSelectTree: {
        // 下拉选择
        name: '下拉选择树',
        icon: 'icontree',
        tagName: 'hlSelectTree', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: '',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            multiple: false, //可否多选
            moduleId: '', // 表单业务模型id
            modelCode: '', // 表单业务模型key
            showSearch: true, //开启搜索
            relationType: '',
            valueTeam: '',
            modelKey: "",
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
        },
    },
    hlCascader: {
        // 级联选择
        name: '级联选择',
        icon: 'iconicon_jilianxuanze_moren',
        tagName: 'hlCascader', // 标签名称
        modelName: '', // 字段名称
        valueType: 'Select',
        trigger: 'change',
        defaultValue: '',
        __highSetUp,
        version: '0.0.1',
        __config: {
            multiple: false, //可否多选
            moduleId: '', // 表单业务模型id
            modelCode: '', // 表单业务模型key
            showSearch: true, //开启搜索
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
        },
    },
    hlRadio: {
        // 单选
        name: '单选',
        icon: 'iconicon_danxuan_moren',
        tagName: 'hlRadio', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: '',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            multiple: false, //可否多选
            placeholder: '请选择', // 提示文字
            relationType: '', //数据源类型字典或者业务
            valueTeam: '', //自数据
            modelCode: '', //子业务模型code
            modelKey: '', // 表单业务模型id
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
        },
    },
    hlCheckbox: {
        // 多选框
        name: '多选',
        icon: 'iconicon_duoxuan_moren',
        tagName: 'hlCheckbox', // 标签名称
        modelName: '', // 字段名称
        trigger: 'input',
        valueType: 'Select',
        __highSetUp,
        version: '0.0.1',
        defaultValue: '',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            multiple: true, //可否多选
            relationType: '', //数据源类型字典或者业务
            valueTeam: '', //自数据
            modelCode: '', //子业务模型code
            modelKey: '', // 表单业务模型id
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
        },
    },
    hlSwitch: {
        // 开关
        name: '开关',
        icon: 'iconicon_kaiguan_moren',
        tagName: 'hlSwitch', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: false,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
        },
    },

    hlDatePicker: {
        // 时间以及日期
        name: '日期',
        icon: 'iconicon_riqishijian_moren',
        tagName: 'hlDatePicker', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: null,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            format: 'YYYY-MM-DD', // 年月日
            placeholder: '请选择日期',
            dateLimitType: '',
            timefilter: '', // 时间范围 5  15  30
            isCurrentDate: false // 是否默认当前日期
        }
    },
    hlTimePicker: {
        // 时间
        name: '时间',
        icon: 'iconicon_shichang_moren',
        tagName: 'hlTimePicker', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        defaultValue: '',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            timeType: 1,
            placeholder: '请选择时间',
            timefilter: '', // 时间范围 5  15  30
            min: null,
            max: null
        },
    },
    hlFile: {
        // 上传附件
        name: '上传附件',
        icon: 'iconicon_fujian_moren1',
        tagName: 'hlFile', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            multiple: false,
            servekey: '',
            maxLength: 1,
            size: 10,
            accept: '',
            acceptTest: '文件',
            tempalteURL: '',
        },
    },
    hlFileImage: {
        // 上传图片
        name: '上传图片',
        icon: 'icontupian2',
        tagName: 'hlFileImage', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        __highSetUp,
        version: '0.0.1',
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            multiple: false,
            servekey: '',
            maxLength: 1,
            drag: false,
            size: 10,
            accept: '',
            acceptTest: '图片',
        },
    },
    hlPersonnel: {
        // 人员
        name: '人员',
        icon: 'iconpeoples',
        tagName: 'hlPersonnel', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            multiple: false, //可否多选
            treeWalker: false, //树形结构
            defaultSelf: false,//默认登陆者名称
        },
    },
    hlDepartment: {
        // 部门
        name: '部门',
        icon: 'iconbumen',
        tagName: 'hlDepartment', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            span: 24, // 栅格
            placeholder: '请选择', // 提示文字
            multiple: false, //可否多选
            treeWalker: false, //树形结构
            defaultSelf: false,//默认登陆者主部门
        },
    },
    hlCustom: {
        // 自定义组件
        name: '渲染组件',
        icon: 'iconzidingyi',
        tagName: 'hlCustom', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        __highSetUp,
        __config: {
            renderJsx: '',
            ...__defaultConfig,
            span: 24, // 栅格
        },
    },
    hlVueComponent: {
        // 自定义组件
        name: 'Vue组件',
        icon: 'iconvue',
        tagName: 'hlVueComponent', // 标签名称
        modelName: '', // 字段名称
        trigger: 'change',
        version: '0.0.1',
        __highSetUp,
        __config: {
            renderJsx: '',
            ...__defaultConfig,
            span: 24, // 栅格
        },
    },
    hlLayout: {
        // 栅格
        name: '栅格布局',
        tagName: 'hlLayout', // 标签名称
        icon: 'iconicon_zhage_moren',
        version: '0.0.1',
        children: [
            { span: 12, children: [] },
            { span: 12, children: [] },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            underline: false,
            modelCode: '',
            type: 'rowLayout',
            rowsType: '1:1',
        },
    },
    hlLayoutTab: {
        // 标签页
        name: '标签页',
        tagName: 'hlLayoutTab', // 标签名称
        icon: 'iconbiaoqian',
        version: '0.0.1',
        defaultValue: '1',
        children: [
            { label: '标签页1', children: [], value: '1', label_i18n: '', hide: false, RuleConditions: [] },
            { label: '标签页2', children: [], value: '2', label_i18n: '', hide: false, RuleConditions: [] },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            caches: false,//状态缓存
            closelazy: false,
            modelCode: '',
            type: 'rowLayout',
            tabtype: '', //card/border-card
            tabPosition: 'top',//选项卡所在位置
            beforeLeave: '',//切换标签之前的钩子
        },
    },
    hlLayoutItem: {
        // 分组
        name: '分组',
        tagName: 'hlLayoutItem', // 标签名称
        icon: 'iconfenzu',
        version: '0.0.1',
        children: [],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            modelCode: '',
            type: 'rowLayout',
            align: 'left', //对齐方式
            tabtype: '-1', //-1 不折叠  1 true  空 false
            title: '分组', //分组标题
        },
    },
    hlrowLayoutTwo: {
        // 左右两栏
        name: '左右两栏',
        tagName: 'hlrowLayoutTwo', // 标签名称
        icon: 'iconyemianhebujuPagesandLayout14',
        version: '0.0.1',
        children: [
            { label: '左栏', children: [], position: 'left' },
            { label: '右栏', children: [], position: 'right' },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            height: 600,
            type: 'rowLayout',
            wresize: false,
            rowwidth: 280,
            rowtype: 'left' //left center right
        },
    },
    hlcolumnLayoutTwo: {
        // 上下两栏
        name: '上下两栏',
        tagName: 'hlcolumnLayoutTwo', // 标签名称
        icon: 'iconyemianhebujuPagesandLayout16',
        version: '0.0.1',
        children: [
            { label: '上栏', children: [], position: 'top' },
            { label: '下栏', children: [], position: 'bottom' },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            height: 600,
            type: 'rowLayout',
            hresize: false,
            columnheight: 280,
            rowtype: 'top' //top middle bottom
        },
    },
    hlrowLayoutThree: {
        // 左右三栏
        name: '左右三栏',
        tagName: 'hlrowLayoutThree', // 标签名称
        icon: 'iconyemianhebujuPagesandLayout9-copy',
        version: '0.0.1',
        children: [
            { label: '左栏', children: [], position: 'left' },
            { label: '上栏', children: [], position: 'top' },
            { label: '下栏', children: [], position: 'bottom' },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            height: 600,
            type: 'rowLayout',
            wresize: false,
            rowwidth: 280,
            hresize: false,
            columnheight: 280,
            rowtype: 'left'
        },
    },
    hlcolumnLayoutThree: {
        name: '上下三栏',
        tagName: 'hlcolumnLayoutThree', // 标签名称
        icon: 'iconbuju-01',
        version: '0.0.1',
        children: [
            { label: '上栏', children: [], position: 'top' },
            { label: '左栏', children: [], position: 'left' },
            { label: '右栏', children: [], position: 'right' },
        ],
        __highSetUp,
        __config: {
            ...__defaultConfig,
            height: 600,
            type: 'rowLayout',
            wresize: false,
            rowwidth: 280,
            hresize: false,
            columnheight: 280,
            rowtype: 'left'
        },
    },
    hlStep: {
        //步骤条
        name: '步骤条',
        icon: 'iconstep',
        tagName: 'hlStep', // 标签名称
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            type: 'rowLayout',
            stepList: [{ title: '步骤 1', description: "" }, { title: '步骤 2', description: "" }, { title: '步骤 3', description: "" }],
            isAlignCenter: false,//是否居中
            processStatus: 'process',//设置当前步骤的状态
            finishStatus: 'finish',//设置结束步骤的状态
        },
    },
    hlCalendar: {
        // 日历
        name: '日历',
        icon: 'iconrili',
        tagName: 'hlCalendar', // 标签名称
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            defaultLoad: false,
            relationSearchCom: '', // 关联搜索组件
            rowheight: '100',
            searchKey: '',//表单查询字段
            formKeys: [],//隐藏域 表单隐藏的常用字段 {key,value}
            moduleId: '', //绑定业务模型id
            modelCode: '',//绑定业务模型code
            renderJsx: '',//节点自定义渲染
            type: 'rowLayout',
            dataCustomLoad: false, // 自定义加载选项
            dataCustomLoadFn: "", // 自定义加载函数
        },
    },
    hlQrcode: {
        // 脑图，功能图
        name: '二维码',
        icon: 'iconerweima',
        tagName: 'hlQrcode', // 标签名称
        version: '0.0.1',
        __highSetUp,
        __config: {
            ...__defaultConfig,
            showlabel: '',
            position: 'left',
            size: 120
        },
    },
    hlQrcodeDecoder: {
        // 识别二维码
        name: '识别二维码',
        icon: 'iconerweima',
        tagName: 'hlQrcodeDecoder', // 标签名称
        version: '0.0.1',
        modelName: '', // 字段名称
        __highSetUp,
        __config: {
            ...__defaultConfig,
        },
    },
    hlColorPicker: {
        name: '颜色选择器',
        icon: 'iconyanse',
        tagName: 'hlColorPicker', // 标签名称
        modelName: '', // 字段名称
        version: '0.0.1',
        defaultValue: '', // 默认值
        __highSetUp,
        __config: {
            ...__defaultConfig,
            rgbType: 'rgb'
        },
    },
    hmVideoMedia: {
        name: '视频显示',
        icon: 'el-icon-video-play',
        tagName: 'hmVideoMedia', // 标签名称
        modelName: '', // 字段名称
        version: '0.0.1',
        defaultValue: '', // 默认值
        __highSetUp,
        __config: {
            ...__defaultConfig,
            mediaLocation: "remote", // remote local
            mediaSrc: "",
            autoplay: true,
            controls: true,
            loop: true,
            muted: true,
            posterLocation: "remote", // remote local
            posterSrc: "",
            widthUnit: "%", // % px
            widthValue: 100,
            heightUnit: "%", // % px
            heightValue: 100,
        },
    },
    hmImageMedia: {
        name: '图片显示',
        icon: 'el-icon-picture-outline',
        tagName: 'hmImageMedia', // 标签名称
        modelName: '', // 字段名称
        version: '0.0.1',
        defaultValue: '', // 默认值
        __highSetUp,
        __config: {
            ...__defaultConfig,
            mediaLocation: "remote", // remote local
            mediaSrc: "",
            alt: '',
            widthUnit: "%", // % px
            widthValue: 100,
            heightUnit: "%", // % px
            heightValue: 100,
        },
    },
};
export default formModel;
